以前如果我們有多個有關連的欄位
通常會使用UIPickerView
它可以設定多個滾輪
Android好像比較沒有類似的東西
如果使用下拉選單(Spinner)也是滿常見的做法
我們先看一下今天的成果
Android | iOS |
---|---|
Spinner | UIPickerView |
DatePickerDialog | UIDatePicker |
<string-array name="constellation_type">
<item>請選擇星座類型</item>
<item>水象</item>
<item>火象</item>
<item>風象</item>
<item>土象</item>
</string-array>
基本上沒什麼問題
Spinner就setOnItemSelectedListener
EditText就setOnClickListener跟setOnFocusChangeListener
但是因為我想給下拉選單一個預設值
不要直接選第一個
結果卡了超久
android spinner 一般預設是選中第一項
但是有時我們需要一開始是 [未選取] 或 [請選擇]
點選spinner後出現選項,點了某個選項後就顯示他。
要達到此目的須自己另外撰寫 spinner adapter
Prompt is used to show title on dropdown popup not for default text.
I think you are looking for setting the default value on spinner when you have not selected any value from spinner dropdown. For that you need to use NothingSelectedSpinnerAdapter,
最後想到直接在資料裡面插入第一筆當作預設值就好了
只是這樣要另外判斷有點髒....
DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
editTextDay.setText(i + "/" + i1 + "/" + i2);
}
};
...
new DatePickerDialog(this, d, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH).show()
直接秀出來就好
4. 就算你在XML寫了二維陣列,裡面的那層會變成字串...= =
<array name="constellation_total">
<item>
<array name="constellation_water1">
<item>雙魚座(2/19-3/20)</item>
<item>巨蟹座(6/22-7/22)</item>
<item>天蠍座(10/24-11/22)</item>
</array>
</item>
<item>
<array name="constellation_fire1">
<item>牧羊座(3/21-4/20)</item>
<item>獅子座(7/23-8/22)</item>
<item>射手座(11/23-12/21)</item>
</array>
</item>
<item>
<array name="constellation_air1">
<item>水瓶座(1/20-2/18)</item>
<item>雙子座(5/21-6/21)</item>
<item>天秤座(9/23-10/23)</item>
</array>
</item>
<item>
<array name="constellation_earth1">
<item>金牛座(4/21-5/20)</item>
<item>處女座(8/23-9/22)</item>
<item>摩羯座(12/22-1/20)</item>
</array>
</item>
</array>
5. 挑時間是用TimePickerDialog
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AdapterView<android.widget.SpinnerAdapter>
↳ android.widget.AbsSpinner
↳ android.widget.Spinner
java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
↳ android.app.DatePickerDialog
可以去 https://github.com/mark33699/IDLA 看一下順便給顆⭐️